Current network and communications technologies, such as machine-to-machine (M2M) technologies and the Internet, allow devices to communicate more directly with each other using wired and wireless communications systems. M2M technologies in particular enable further realization of the Internet of Things (IoT), a system of uniquely identifiable objects and virtual representations of such objects that communicate with each other and over a network, such as the Internet. IoT may facilitate communication with even mundane everyday objects, such as products in a grocery store or appliances in a home, and thereby reduce costs and waste by improving knowledge of such objects. For example, stores may maintain very precise inventory data by being able to communicate with, or obtain data from, objects that may be in inventory or may have been sold. Other networks of communicatively connected entities and objects may also facilitate similar functionality.
Each of the entities in almost any communications network, including IoT or similar networks of connected entities, need a mechanism to discover other entities in the network so that they can communicate to accomplish tasks and perform functions. Current discovery mechanisms typically take two forms. In directory-based discovery, there is a directory server or other directory entity that entities in the network may query to discover resources. (“Resources” as used herein refers to any devices, services, entities, and any other function, capability, or “thing” available in the network). Directory servers may be centrally located or distributed about the network. In directory-less discovery, individual entities broadcast or multicasts discovery requests across the network, or a subsection thereof. Resource providing entities respond to this request by reporting the resources available at the entity. Some implementations, such as those that use the Internet Engineering Task Force (IETF) Service Location Protocol (SLP), may support both directory-based and directory-less discovery.
In current implementations, multiple discovery requests for the same type of resource may be processed by a resource directory server or an entity that provides a resource as entities in the network attempt to use same types of resources. This repeated processing of similar or the same type of discovery requests can add significant overhead to such entities, and where such entities have limited processing, communications, power, and/or other capabilities, may affect the entities' ability to perform other tasks.